This invention relates to a method for printing using a rasterizer and a print engine of incompatible bit-depth and more particularly for printing using a uniform bit-depth PostScript raster image processor (RIP) in conjunction with a swath manager that requires print data comprising non-uniform bit-depth pixel data.
The use of color images in computer systems and computer based publishing systems is becoming increasingly popular. The use of color images is no longer limited to professionals using high-end computer systems. Instead, the reproduction of color images is quickly becoming a standard feature of personal computers used by all levels of computer users.
The popularity is due in part to the result of standards-based computer programs such as modules which implement the page description language (PDL) PostScript available from Adobe Systems Incorporated of Mountain View, California, U.S.A. The PostScript language has become an industry standard that serves as an intermediary between application packages, e.g., desktop publishing programs, and PDL-compatible reproduction equipment, such as a desktop printer. The application packages translate information for a page into PDL for transmission to a PDL-compatible desktop printer. The PDL-compatible printer includes an interpreter that converts the PDL code to low-level instructions that indicate to the printer how to render the text and graphics. The process of interpreting and rendering PDL is often performed within a raster image processor (RIP). The output of the RIP is pixel data which is of a uniform bit-depth.
An image to be printed on a page consists of picture elements, called pixels. The size of each pixel is dependent on the resolution of a printer. Each pixel can take on one of several different image values. For example, a color pixel is allocated a particular number of bits to each of the color components that make up the color pixel. For printing, one uses at least three color components, and most commonly four color components: C, M, Y and K to indicate the amounts of cyan, magenta, yellow and black colorant needed to reproduce the image on a particular printer. It is not uncommon to represent each of the components by an 8-bit value, for a total of 32 bits per pixel. It has been observed that not all 256 colorant levels (8 bits) per component are perceptually or measurably distinguishable. This inability to distinguish the 256 colorant levels indicates that a lower number of colorant levels will still produce images with sufficiently high quality. There exist techniques which reduce the number of bits per pixel to give a lower number of colorant levels.
Such reduction in the number of bits will result in great savings in memory requirements for storing a complete image in a printer. For example, to store a color image of a typical 11 by 8.5-inch page size, at a spatial resolution of 600 pixels per inch, with four color components per pixel and one byte (8 bits) per component requires a massive 134,640,000 bytes. This large memory requirement will increase the cost of a printer. It would be desirable to reduce the amount of memory needed to store such an image without losing a noticeable amount of image quality.
One of the techniques for reducing the number of bits is a technique known as halftoning. Halftoning uses a spatial representation of pixels of different shades to simulate a color or gray level, typically to approximate the desired color or gray level on a device that cannot represent the color or gray level directly.
Another factor that is important in printers is printing speed. Current printer throughput in terms of number of pages per minute still leaves a lot to be desired. Developers have gone to great length to improve printing speed. One of the methods for improving print speed is the use of a non-symmetric print engine. In such a print engine, the size of a black (K) dot is 4 times larger than the other (CMY) dots. This printing of larger K dots is employed to maximize black printing speed. By printing larger dots, it takes less dots and thus less time to print to cover a print area. With a larger black dot, it is also decided that only a binary value representation of 1 bit is required to represent the K component without significantly degrading print quality. This 1-bit bit-depth of black component further reduces the memory requirement in a printer. A 1-bit bit-depth will mean depositing a fixed amount of colorant such as ink at a particular point, or not depositing any colorant at that point.
Current Postscript RIPs are implemented in software which is generally owned and distributed by Adobe. This RIP software can be configured to produce an output pixel data which is of uniform CMYK bit-depth only. In other words, the same number of bits will represent all CMYK components. This uniform CMYK bit-depth output is incompatible with downstream non-uniform CMYK bit-depth software components such as a swath manager of a non-symmetric print engine. Take for example a swath manager which expects an input data of 1-bit K and 2-bit CMY bit-depths. There is a mismatch in the representation of the K component at the interface between the output of the RIP and the input of the swath manager. Assume that the RIP is configured to output pixel data of a uniform 2-bit CMYK bit-depth. The output of the RIP for the K component of any pixel will take on one of the values 00, 01, 10 and 11. The inventors have experimented with converting these 2-bit values to 1-bit values by using bit truncation or bit resampling at the swath manager. As the software implementing these RIPs is usually complex, modifications are not made to the software to implement the conversion. Modifications to such complex software will require extensive effort in testing and this extra testing effort increases product cycle time.
Bit truncation and bit resampling are best described by way of an example. Assuming the printing of a white-to-black ramp using the RIP and the swath manager, which are of incompatible bit-depths. Ideally, this white-to-black ramp will be printed with white on one end and black on the other with shades of progressively darker gray from the white end to the black end. The pixel K value on the white end will be 00. As the ramp progresses, some pixels will be 01. Further on, more and more pixels will be 01 until all pixels are 01. And yet further on, some pixels will have the K value of 10 until all pixels are 10. This distribution of pixels applies for pixels having a K value of 11. Eventually, at the black end, all pixels will have this K value of 11. A simple bit truncation removes the most significant bit of the 2-bit value. The 00xe2x86x9201xe2x86x9210xe2x86x9211 progression in pixel K value will end up with 1-bit values of 0, 1, 0, 1. Printing of the white-to-black ramp using such truncated pixel data in a 1-bit K print engine will result in an undesirable white-black-white-black double ramp instead.
Bit resampling involves processing of the pixel data with 2-bit K bit-depth to produce the required pixel data of 1-bit K bit-depth. This processing may involve performing steps similar to halftoning to convert the pixel data. Although the result achievable by using bit resampling may be better than that of using bit truncation, steps similar to halftoning is a time consuming process and the use of such a method will degrade the printing speed of a printer.
From the above, there is therefore a need for a method and apparatus to integrate a uniform CMYK bit-depth rasterizer and a non-uniform CMYK bit-depth print engine without imposing too much processing overhead in a printer to undesirably degrade printing speed.
In accordance with the preferred embodiment of the invention, a method and apparatus are provided to integrate a uniform bit-depth rasterizer and a non-uniform bit-depth print engine.
The non-uniform bit-depth print engine expects to receive pixel data with the different components represented by different bit-depths. Prior to being forwarded to the print engine, pixel data is processed by a halftoning module in the rasterizer. The halftoning module outputs pixel data at a uniform bit-depth. This uniform bit-depth matches a component bit-depth of the print engine.
A print engine component whose bit-depth does not match the s uniform bit-depth of the halftoning module is identified. The values of this identified component in the pixel data are scaled prior to halftoning to limit their halftoned output values.
After halftoning of the scaled pixel data, appropriate bits are extracted from the values of the identified component to obtain the required non-uniform bit-depth pixel data.
This non-uniform bit-depth pixel data is used with the non-uniform bit-depth print engine, thus integrating a rasterizer and a print engine of incompatible bit-depths.